/*
 * @lc app=leetcode.cn id=3 lang=c
 *
 * [3] 无重复字符的最长子串
 */

// @lc code=start

#include <stdio.h>
int lengthOfLongestSubstring(char *s)
{
    int count[256] = {0};
    int len = 0;
    int i, j; // 双指针

    for (i = 0, j = 0; s[i] != '\0'; i++)
    {
        printf("i:%d\n", i);
        // 字符计数
        count[s[i]]++;
        while (count[s[i]] > 1)
        {
            // 遇到重复字符
            len = i - j > len ? i - j : len;
            // 清空当前字符
            printf("j:%d\n", j);
            count[s[j++]] -= 1;
        }
    }
    return i - j > len ? i - j : len;
}
// @lc code=end
